/**
 * Created by li hong 2017/10/10 0025.
 */
var wind = null;

$(function () {
    var table = new tableFactory();
    addListeners(table);


    //新增按钮的页面之后事件。当点击风电场，判断是光伏还是风电，然后匹配出风机跟控制器的信息
    $(document).on("change","#new-farmId",function(){
        $("#new-fanModel").empty();//赋值之前，先清空
        var id =$("#new-farmId option:checked").val();//获取选风电场的ID
        // console.log(a);
        var type = '';//申明类型
        var farmName='';//申明风电场名称
        $.each(wind,function (index,item) {
            if(id===item.farmid){
                type = item.farmtype;
                farmName = item.farmname;
            }
        })
        if(type=='0'){//0表示风电，1表示光伏
            var news = $("#new-fanModel");//获取风机跟控制的下拉框的对象
            var data = {"farmId":id};
            $.ajax({
                url : "../fanManage/getFanmodel",
                type : "get",
                contentType : "application/json",
                dataType : "json",
                data :data /*JSON.stringify(data)*/,//转换成字符串。后台使用了RequestBody注解
                success : function(data) {
                    $.each(data, function (index, item) {
                        news.append('<option value="'+item.fanmodel+'">'+item.fanmodel+'</option>');
                    });
                    $("#new-fanModel").selectpicker('refresh');
                }
            });
            $("#new-fanModel").selectpicker();
        }else {
            var news = $("#new-fanModel");//获取风机跟控制的下拉框的对象
            var data = {"farmid":id};
            $.ajax({
                url : "../sfControllerManage/getControllername",
                type : "get",
                contentType : "application/json",
                dataType : "json",
                data :data /*JSON.stringify(data)*/,//转换成字符串。后台使用了RequestBody注解
                success : function(data) {
                    $.each(data, function (index, item) {
                        news.append('<option value="'+item.controllername+'">'+item.controllername+'</option>');
                    });
                }
            });
        }
    });


    upload();

    //点击不同的风电场，展示不同的数据
    $("ul#parent").on("click", "li", function () {
        var name = $(this).text();//获取当前点击的风电场名称
        table.clickFan(name);
    });

})
function tableFactory() {
    var me = this;
    me.windData = null;
    me.data = null;
    me.maxId = 0;
    var init = function () {
        $.when(me.getWindData()).then(function () {
        $("#fan").bootstrapTable({
            method: 'get',					  //请求方式（*）
            striped: false,					  //是否显示行间隔色
            cache: false,					   //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: true,				   //是否显示分页（*）
            sortable: true,					 //是否启用排序
            sortOrder: "asc",				   //排序方式
            sidePagination: "client",		   //分页方式：client客户端分页，server服务端分页（*）
            pageNumber: 1,					   //初始化加载第一页，默认第一页
            search: true,					   //是否显示表格搜索，只能进行客户端搜索
            strictSearch: false,                //true为全匹配，false为模糊查询
            showColumns: true,				  //是否显示筛选列按钮
            showRefresh: false,			  //是否显示刷新按钮
            clickToSelect: true,				//是否启用点击选中行
            showToggle: false,					//是否显示详细视图和列表视图的切换按钮
            cardView: false,					//是否显示详细视图
            detailView: false,				   //是否显示父子表
            singleSelect: true,
            height: 'auto',
            pageSize: 10,
            pageList: [5,10,20],
            columns: [{
                field: 'check', checkbox: true
            },{
                title: '风机编号', field: 'fannum', align: 'center', valign: 'middle', sortable: true
            }, {
                title: '风机名称', field: 'fanname', align: 'center', valign: 'middle'
            }, {
                title: '风机型号', field: 'fanmodel', align: 'center', valign: 'middle'
            }, {
                title: '制造商', field: 'mauefacturer', align: 'center', valign: 'middle'
            }, {
                title: '所属风电场', field: 'farmname', align: 'center', valign: 'middle',width:'70%',
                formatter: function (value, row, index) {
                    //console.log(row.farmId);
                    return me.getWindById(row.farmid);
                }
            }, {
                title: '关联测风塔', field: 'wftowerId', align: 'center', valign: 'middle'
            }, {
                title: '开机容量(MW)', field: 'bootCapacity', align: 'center', valign: 'middle'
            },{
                title: '装机容量(mw)', field: 'installedcapacity', align: 'center', valign: 'middle'
            },{
                title: '额定风速(m/s)', field: 'ratedspeed', align: 'center', valign: 'middle'
            }, {
                title: '切出风速(m/s)', field: 'outspeed', align: 'center', valign: 'middle'
            }, {
                title: '切入风速(m/s)', field: 'inspeed', align: 'center', valign: 'middle'
            }, {
                title: '经度', field: 'lon', align: 'center', valign: 'middle'
            }, {
                title: '纬度', field: 'lat', align: 'center', valign: 'middle'
            }, {
                title: '高程', field: 'alt', align: 'center', valign: 'middle'
            }, {
                title: '轮毂高度(m)', field: 'height', align: 'center', valign: 'middle'
            }, {
                title: '叶轮直径(m)', field: 'diameter', align: 'center', valign: 'middle'
            },{
                title: '备注', field: 'remark', align: 'center', valign: 'middle'
            }]
        });
            me.loadData();
        });
    }
    init();
}

tableFactory.prototype = {

    //加载风机数据
    loadData: function () {
        var me = this;
       // var index = layer.load(1);
        $.getJSON('../fanManage/selectAll', '', function (_data) {
            console.log(_data);
            me.data = _data;
            if(_data==null){
                //layer.close(index);
                return;
            }
            $("#fan").bootstrapTable("load", _data);
          //layer.close(index);

        })
    },

    //加载电站信息
    getWindData:function () {
        var me = this;
        var parent = $("#parent");//ul对象
        $.getJSON('../windManage/selectWf', '', function (_data) {
            me.WindData = _data;
            wind = _data;//定义一个全局变量，方便修改的时候调用。
            //layer.close(index);
           // console.log(me.WindData);
            $.each(_data, function (index, item) {
                parent.append("<li><span class='btn btn-primary'>"+item.farmname+"</span></li>");
            });
        })
    },
    //获取电站名称
    getWindById: function (farmid) {
        var farmName = '';
        var me = this;
        $.each(me.WindData, function (index, item) {
            if (item.farmid === farmid) {
                farmName = item.farmname;
                return false;
            }
        });
        return farmName;
    },
    //点击不同的风电场。获取不同的数据
    clickFan:function(name){
        /*var name = $(this).text();*/
        var data = {"farmName":name};
        $.ajax({
            url : "../fanManage/getOneFanData",
            type : "get",
            contentType : "application/json",
            dataType : "json",
            data :data /*JSON.stringify(data)*/,//转换成字符串。后台使用了RequestBody注解
            success : function(data) {
            $("#fan").bootstrapTable("load", data);
    }
    });
    },



    save: function () {
        var me = this;
        var html = [];
        html.push('<div style="margin: 10px;"><table class="table table-bordered table-normal">');
        html.push('<tr><td>风机编号：</td><td><input type="text" class="form-control" id="new-fanNum" /></td></tr>');
        html.push('<tr><td>风机名称：</td><td><input type="text" class="form-control" id="new-fanName" /></td></tr>');
        html.push('<tr><td>所属风电场：</td><td><select type="text" class="form-control" id="new-farmId">');
        //html.push('<option value="">无</option>');
        html.push('<option value="" type="text" class="form-control">请选择</option>');
        $.each(me.WindData, function (index, item) {
            html.push('<option value="' + item.farmid + '">' + item.farmname + '</option>');
        });
        html.push('</select></td></tr>');
        html.push('<tr><td>风机型号：</td><td><select type="text" class="form-control" id="new-fanModel"/></select></td></tr>');
        html.push('<tr><td>制造商：</td><td><input type="text" class="form-control" id="new-mauefacturer" /></td></tr>');
       // html.push('<tr><td>所属风电场：</td><td><input type="text" class="form-control" id="new-farmId" /></td></tr>');



        html.push('<tr><td>关联测风塔：</td><td><input type="text" class="form-control" id="new-wftowerId" /></td></tr>');
        html.push('<tr><td>开机容量(mw)：</td><td><input type="text" class="form-control" id="new-bootCapacity" /></td></tr>');
        html.push('<tr><td>装机容量(mw)：</td><td><input type="text" class="form-control" id="new-installedCapacity" /></td></tr>');
        html.push('<tr><td>额定风速(m/s)：</td><td><input type="text" class="form-control" id="new-ratedSpeed" /></td></tr>');
        html.push('<tr><td>切出风速(m/s)：</td><td><input type="text" class="form-control" id="new-outSpeed" /></td></tr>');
        html.push('<tr><td>切入风速(m/s)：</td><td><input type="text" class="form-control" id="new-inSpeed" /></td></tr>');
        html.push('<tr><td>经度：</td><td><input type="text" class="form-control" id="new-lon" /></td></tr>');
        html.push('<tr><td>纬度：</td><td><input type="text" class="form-control" id="new-lat" /></td></tr>');
        html.push('<tr><td>高程(m)：</td><td><input type="text" class="form-control" id="new-alt" /></td></tr>');
        html.push('<tr><td>轮毂高度(m)：</td><td><input type="text" class="form-control" id="new-height" /></td></tr>');
        html.push('<tr><td>叶轮直径(m)：</td><td><input type="text" class="form-control" id="new-diameter" /></td></tr>');
        html.push('<tr><td>标准功率曲线：</td><td><input type="text" class="form-control" id="new-standardCurve" /></td></tr>');
        html.push('<tr><td>备注：</td><td><input type="text" class="form-control" id="new-remark" /></td></tr>');
        html.push('</table></div>');

        layer.open({
            type: 1,
            area: '400px',
            title: '添加风机',
            color:'green',
            btn: ['确定'],
            //shadeClose: true,//开启遮罩关闭
            content: html.join(''),
            yes: function (index) {
                var p = {
                    //departmentid: me.maxId + 1,
                    fannum: $("#new-fanNum").val(),
                    fanname: $("#new-fanName").val(),
                    fanmodel: $("#new-fanModel").val(),
                    mauefacturer: $("#new-mauefacturer").val(),
                    farmid: $("#new-farmId").val(),
                    wftowerid: $("#new-wftowerId").val(),
                    bootcapacity: $("#new-bootCapacity").val(),
                    installedcapacity: $("#new-installedCapacity").val(),
                    ratedspeed: $("#new-ratedSpeed").val(),
                    outspeed: $("#new-outSpeed").val(),
                    inspeed: $("#new-inSpeed").val(),
                    lon: $("#new-lon").val(),
                    lat: $("#new-lat").val(),
                    alt: $("#new-alt").val(),
                    height: $("#new-height").val(),
                    diameter: $("#new-diameter").val(),
                    standardcurve: $("#new-standardCurve").val(),
                    remark: $("#new-remark").val()
                };
               //
                //
                // layer.close(index);
                $.ajax({
                    url : "../fanManage/insert",
                    type : "post",
                    contentType : "application/json",
                    dataType : "json",
                    data : JSON.stringify(p),//转换成字符串。后台使用了RequestBody注解
                    success : function(data) {
                        if (data === true) {
                            me.loadData();
                            layer.msg("添加成功！", {icon: 1});
                        } else {
                            layer.msg("添加失败！", {icon: 2});
                        }
                    },
                    error :function(){
                        layer.msg("添加失败！", {icon: 2});
                    }
                });
            }
        });
    },
    delete: function () {
        var me = this;
        var selects = $('#fan').bootstrapTable("getSelections");
        if (selects.length > 0) {
            layer.confirm('确定删除?', {icon: 3, title:'提示'}, function (index) {
                //do something
                var deletes = [];
                var id;
                //当数据删除时，刷新当前页面的数据
                var fanname;
                var farmid;


                $.each(selects, function (index, item) {
                    deletes.push({
                        farmid: item.fanid,
                    });
                    id = item.fanid;
                    farmid = item.fanid;
                });

                fanname = me.getWindById(farmid);
                $.ajax({
                    url: '../fanManage/deleteOne',
                    type: 'get',
                    contentType : 'application/json;charset=utf-8', //设置请求头信息
                    dataType: 'json',
                    data: {"id":id},/*JSON.stringify(deletes),*/
                    success: function (data) {
                        if (data === true) {
                            /*me.loadData();*/
                            me.clickFan(fanname);
                            layer.msg("删除成功！", {icon: 1});
                        }
                    }
                });
               // layer.close(index);
            });
        } else {
            layer.msg("请选择要删除的信息！", {icon: 0});
        }
    },
    edit: function () {
       // console.log(wind);
        var me = this;
        var selects = $('#fan').bootstrapTable("getSelections");
        var len = selects.length;
        if (len === 1) {
            var editItem = selects[0];
            console.log(editItem);
            var farmid = editItem["farmid"];
            var html = [];
            html.push('<div style="margin: 10px;"><table class="table table-bordered table-normal">');
            html.push('<tr><td>风机编号：</td><td><input type="text" class="form-control" id="edit-fanNum" /></td></tr>');
            html.push('<tr><td>风机名称：</td><td><input type="text" class="form-control" id="edit-fanName" /></td></tr>');
            html.push('<tr><td>风机型号：</td><td><input type="text" class="form-control" id="edit-fanModel" /></td></tr>');
            html.push('<tr><td>制造商：</td><td><input type="text" class="form-control" id="edit-mauefacturer" /></td></tr>');
            html.push('<tr><td>所属风电场：</td><td><select type="text" class="form-control" id="edit-farmId">');
            $.each(wind, function (index, item) {
                if(item.farmid==farmid){
                    html.push('<option value="'+item.farmid+ '" selected>' + me.getWindById(farmid) + '</option>');
                }else{
                    html.push('<option value="'+item.farmid+'">' + item.farmname + '</option>');
                }
            });
            html.push('</select></td></tr>');

            html.push('<tr><td>关联测风塔：</td><td><input type="text" class="form-control" id="edit-wftowerId" /></td></tr>');
            html.push('<tr><td>开机容量(mw)：</td><td><input type="text" class="form-control" id="edit-bootCapacity" /></td></tr>');
            html.push('<tr><td>装机容量(mw)：</td><td><input type="text" class="form-control" id="edit-installedCapacity" /></td></tr>');
            html.push('<tr><td>额定风速(m/s)：</td><td><input type="text" class="form-control" id="edit-ratedSpeed" /></td></tr>');
            html.push('<tr><td>切出风速(m/s)：</td><td><input type="text" class="form-control" id="edit-outSpeed" /></td></tr>');
            html.push('<tr><td>切入风速(m/s)：</td><td><input type="text" class="form-control" id="edit-inSpeed" /></td></tr>');
            html.push('<tr><td>经度：</td><td><input type="text" class="form-control" id="edit-lon" /></td></tr>');
            html.push('<tr><td>纬度：</td><td><input type="text" class="form-control" id="edit-lat" /></td></tr>');
            html.push('<tr><td>高程(m)：</td><td><input type="text" class="form-control" id="edit-alt" /></td></tr>');
            html.push('<tr><td>轮毂高度(m)：</td><td><input type="text" class="form-control" id="edit-height" /></td></tr>');
            html.push('<tr><td>叶轮直径(m)：</td><td><input type="text" class="form-control" id="edit-diameter" /></td></tr>');
            html.push('<tr><td>标准功率曲线：</td><td><input type="text" class="form-control" id="edit-standardCurve" /></td></tr>');
            html.push('<tr><td>备注：</td><td><input type="text" class="form-control" id="edit-remark" /></td></tr>');
            html.push('</table></div>');

            layer.open({
                type: 1, area: '500px', title: '修改风机', btn: ['确定'],
                content: html.join(''),
                success: function () {
                    $('#edit-fanNum').val(editItem.fannum);
                    $('#edit-fanName').val(editItem.fanname);
                    $('#edit-fanModel').val(editItem.fanmodel);
                    $('#edit-mauefacturer').val(editItem.mauefacturer);
                    $('#edit-wftowerId').val(editItem.wftowerid);
                    $('#edit-bootCapacity').val(editItem.bootcapacity);
                    $('#edit-installedCapacity').val(editItem.installedcapacity);
                    $('#edit-ratedSpeed').val(editItem.ratedspeed);
                    $('#edit-outSpeed').val(editItem.outspeed);
                    $('#edit-inSpeed').val(editItem.inspeed);
                    $('#edit-lon').val(editItem.lon);
                    $('#edit-lat').val(editItem.lat);
                    $('#edit-alt').val(editItem.alt);
                    $('#edit-height').val(editItem.height);
                    $('#edit-diameter').val(editItem.diameter);
                    $('#edit-standardCurve').val(editItem.standardCurve);
                    $('#edit-remark').val(editItem.remark);
                },
                yes: function (index) {
                    var p = {
                        fanid:editItem.fanId,
                        fannum: $("#edit-fanNum").val(),
                        fanname: $("#edit-fanName").val(),
                        fanmodel: $("#edit-fanModel").val(),
                        farmid: $("#edit-farmId").val(),
                        mauefacturer: $("#edit-mauefacturer").val(),
                        wftowerid:$("#edit-wftowerId").val(),
                        bootcapacity: $("#edit-bootCapacity").val(),
                        installedcapacity: $("#edit-installedCapacity").val(),
                        ratedspeed: $("#edit-ratedSpeed").val(),
                        outspeed: $("#edit-outSpeed").val(),
                        inspeed: $("#edit-inSpeed").val(),
                        lon: $("#edit-lon").val(),
                        lat: $("#edit-lat").val(),
                        alt: $("#edit-alt").val(),
                        height: $("#edit-height").val(),
                        diameter: $("#edit-diameter").val(),
                        standardcurve: $("#edit-standardCurve").val(),
                        remark: $("#edit-remark").val(),
                    };
                   // layer.close(index);
                    $.ajax({
                        url : "../fanManage/update",
                        type : "POST",
                        contentType : "application/json",
                        dataType : "json",
                        data : JSON.stringify(p),//转换成字符串。后台使用了RequestBody注解
                        success : function(data) {
                            if (data === true) {
                                me.loadData();
                                layer.msg("修改成功！", {icon: 1});
                            } else {
                                layer.msg("修改失败！", {icon: 2});
                            }
                        },
                        error :function(){
                            alert("添加失败");
                        }
                    });
                }
            });
        } else if (len > 1){
            layer.msg("只能选择一条信息！", {icon: 0});
        } else if (len === 0) {
            layer.msg("请选择要修改的信息！", {icon: 0});
        }
    },
    export:function () {
        $.ajax({
            url: '../fanManage/CsvExport',
            type: 'get',
            contentType : 'application/json;charset=utf-8', //设置请求头信息
            dataType: 'json',
            data: "",/*JSON.stringify(deletes),*/
            success: function (data) {
               if (data === true) {
                    layer.msg("下载成功！", {icon: 1});
                }
            }
        });
    }
};

function addListeners (tableObj) {
    $('#btn-add').off('click');
    $('#btn-delete').off('click');
    $('#btn-edit').off('click');
    $('#btn-add').on('click', function () {
        tableObj.save();
    });
    $('#btn-delete').on('click', function () {
        tableObj.delete();
    });
    $('#btn-edit').on('click', function () {
        tableObj.edit();
    });
    $('#btn-export').on('click', function () {
        tableObj.export();
    });
}

//点击导入；
function upload(){
    layui.use('upload', function(){
        var upload = layui.upload;
        //执行实例
        var uploadInst = upload.render({
            elem: '#btn-upload', //绑定元素
            url: '../fanManage/CsvImport', //上传接口
            accept: 'file',//指定允许上传的文件类型，可选值有：images（图片）、file（所有文件）、video（视频）、audio（音频）
            exts:'csv',//指定文件的后缀
            done: function(res){
                if (res === true) {
                    layer.msg("上传成功！", {icon: 1});
                } else {
                    layer.msg("上传失败！", {icon: 2});
                }
            }
            ,error: function(){
                //请求异常回调
            }
        });
    });
}

